package net.lucamasini.fantacalcio.gwt.client.presenter;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import net.lucamasini.fantacalcio.gwt.client.view.ClassificaView;
import net.lucamasini.fantacalcio.server.model.Classifica;
import net.lucamasini.fantacalcio.server.model.Giornata;

import com.google.gwt.i18n.client.DateTimeFormat;
import com.google.gwt.i18n.client.DateTimeFormat.PredefinedFormat;
import com.google.gwt.user.client.ui.HasWidgets;

public class ClassificaPresenter implements Presenter {

	private final ClassificaView view;

    final private Giornata giornata = new Giornata();
    {
    	giornata.setDataFinePronostici(new Date());
    	giornata.setDataInizioPronostici(new Date());
    	giornata.setDescrizione("Prima giornata di Serie A");
    }

	final private Classifica[] classifica = {
			new Classifica("Fiorentina (Fabio)", 4, 1, 1),
			new Classifica("Ternana (Maurizio)", 3, 1, 0),
			new Classifica("xxx (Luca)", 1, 0, 1),
			new Classifica("Pavia (Marco)", 1, 0, 1),
			new Classifica("Taranto (Federico)", 1, 0, 1)
	};

	public ClassificaPresenter(ClassificaView view) {
		
		this.view = view;
		
	}

	public void populate() {
		List<Classifica> listValues = new ArrayList<Classifica>();
        for(int i=0;i<classifica.length;i++) {
			listValues.add(classifica[i]);
        }
		this.view.classifica().setRowData(0, listValues);
		
		this.view.descrizioneGiornata().setText(giornata.getDescrizione());
		this.view.dataGiornata().setText(DateTimeFormat.getFormat(PredefinedFormat.DATE_SHORT).format(giornata.getDataFinePronostici()));
	}
	
	@Override
	public void go(HasWidgets container) {
        populate();
		container.clear();
		container.add(view.asWidget());
	}
}
